from datetime import datetime

from my_models import client


def change_date():
    """
    更新所有文档的时间，便于前端测试
    """
    db = client.blood_pressure
    data_collection = db.datas

    # 获取最大的时间戳
    max_doc = data_collection.find_one(sort=[("time", -1)])
    if not max_doc:
        print("数据集合为空")
        return

    max_time = datetime.fromtimestamp(max_doc["time"])  # 解析最大时间
    today = datetime.now().date()  # 获取今天的日期

    # 计算最大时间与今天的天数差
    time_offset = (today - max_time.date()).days
    if time_offset > 0:
        print(f"最大时间为{max_time}，今天是{today}，时间差为{time_offset}天")
        time_offset = time_offset * 86400  # 86400 秒 = 1 天
        # 更新所有文档的时间
        data_collection.update_many({}, {"$inc": {"time": time_offset}})
        print("数据时间更新完成")
    else:
        print(f"数据已是最新,最大时间为{max_time}")


if __name__ == '__main__':
    change_date()
